﻿/**
 * jQuery EasyUI 1.5
 *
 * Copyright (c) 2009-2016 www.jeasyui.com. All rights reserved.
 *
 * Licensed under the freeware license: http://www.jeasyui.com/license_freeware.php
 * To use it on other terms please contact us: info@jeasyui.com
 *
 */
(function ($) {
    function _1(_2) {
        var _3 = $.data(_2, "treegrid");
        var _4 = _3.options;
        $(_2).datagrid($.extend({}, _4, {
            url: null, data: null, loader: function () {
                return false;
            }, onBeforeLoad: function () {
                return false;
            }, onLoadSuccess: function () {
            }, onResizeColumn: function (_5, _6) {
                _16(_2);
                _4.onResizeColumn.call(_2, _5, _6);
            }, onBeforeSortColumn: function (_7, _8) {
                if (_4.onBeforeSortColumn.call(_2, _7, _8) == false) {
                    return false;
                }
            }, onSortColumn: function (_9, _a) {
                _4.sortName = _9;
                _4.sortOrder = _a;
                if (_4.remoteSort) {
                    _15(_2);
                } else {
                    var _b = $(_2).treegrid("getData");
                    _4f(_2, null, _b);
                }
                _4.onSortColumn.call(_2, _9, _a);
            }, onClickCell: function (_c, _d) {
                _4.onClickCell.call(_2, _d, _30(_2, _c));
            }, onDblClickCell: function (_e, _f) {
                _4.onDblClickCell.call(_2, _f, _30(_2, _e));
            }, onRowContextMenu: function (e, _10) {
                _4.onContextMenu.call(_2, e, _30(_2, _10));
            }
        }));
        var _11 = $.data(_2, "datagrid").options;
        _4.columns = _11.columns;
        _4.frozenColumns = _11.frozenColumns;
        _3.dc = $.data(_2, "datagrid").dc;
        if (_4.pagination) {
            var _12 = $(_2).datagrid("getPager");
            _12.pagination({
                pageNumber: _4.pageNumber,
                pageSize: _4.pageSize,
                pageList: _4.pageList,
                onSelectPage: function (_13, _14) {
                    _4.pageNumber = _13;
                    _4.pageSize = _14;
                    _15(_2);
                }
            });
            _4.pageSize = _12.pagination("options").pageSize;
        }
    };

    function _16(_17, _18) {
        var _19 = $.data(_17, "datagrid").options;
        var dc = $.data(_17, "datagrid").dc;
        if (!dc.body1.is(":empty") && (!_19.nowrap || _19.autoRowHeight)) {
            if (_18 != undefined) {
                var _1a = _1b(_17, _18);
                for (var i = 0; i < _1a.length; i++) {
                    _1c(_1a[i][_19.idField]);
                }
            }
        }
        $(_17).datagrid("fixRowHeight", _18);

        function _1c(_1d) {
            var tr1 = _19.finder.getTr(_17, _1d, "body", 1);
            var tr2 = _19.finder.getTr(_17, _1d, "body", 2);
            tr1.css("height", "");
            tr2.css("height", "");
            var _1e = Math.max(tr1.height(), tr2.height());
            tr1.css("height", _1e);
            tr2.css("height", _1e);
        };
    };

    function _1f(_20) {
        var dc = $.data(_20, "datagrid").dc;
        var _21 = $.data(_20, "treegrid").options;
        if (!_21.rownumbers) {
            return;
        }
        dc.body1.find("div.datagrid-cell-rownumber").each(function (i) {
            $(this).html(i + 1);
        });
    };

    function _22(_23) {
        return function (e) {
            $.fn.datagrid.defaults.rowEvents[_23 ? "mouseover" : "mouseout"](e);
            var tt = $(e.target);
            var fn = _23 ? "addClass" : "removeClass";
            if (tt.hasClass("tree-hit")) {
                tt.hasClass("tree-expanded") ? tt[fn]("tree-expanded-hover") : tt[fn]("tree-collapsed-hover");
            }
        };
    };

    function _24(e) {
        var tt = $(e.target);
        if (tt.hasClass("tree-hit")) {
            _25(_26);
        } else {
            if (tt.hasClass("tree-checkbox")) {
                _25(_27);
            } else {
                $.fn.datagrid.defaults.rowEvents.click(e);
            }
        }

        function _25(fn) {
            var tr = tt.closest("tr.datagrid-row");
            var _28 = tr.closest("div.datagrid-view").children(".datagrid-f")[0];
            fn(_28, tr.attr("node-id"));
        };
    };

    function _27(_29, _2a, _2b, _2c) {
        var _2d = $.data(_29, "treegrid");
        var _2e = _2d.checkedRows;
        var _2f = _2d.options;
        if (!_2f.checkbox) {
            return;
        }
        var row = _30(_29, _2a);
        if (!row.checkState) {
            return;
        }
        var tr = _2f.finder.getTr(_29, _2a);
        var ck = tr.find(".tree-checkbox");
        if (_2b == undefined) {
            if (ck.hasClass("tree-checkbox1")) {
                _2b = false;
            } else {
                if (ck.hasClass("tree-checkbox0")) {
                    _2b = true;
                } else {
                    if (row._checked == undefined) {
                        row._checked = ck.hasClass("tree-checkbox1");
                    }
                    _2b = !row._checked;
                }
            }
        }
        row._checked = _2b;
        if (_2b) {
            if (ck.hasClass("tree-checkbox1")) {
                return;
            }
        } else {
            if (ck.hasClass("tree-checkbox0")) {
                return;
            }
        }
        if (!_2c) {
            if (_2f.onBeforeCheckNode.call(_29, row, _2b) == false) {
                return;
            }
        }
        if (_2f.cascadeCheck) {
            _31(_29, row, _2b);
            _32(_29, row);
        } else {
            _33(_29, row, _2b ? "1" : "0");
        }
        if (!_2c) {
            _2f.onCheckNode.call(_29, row, _2b);
        }
    };

    function _33(_34, row, _35) {
        var _36 = $.data(_34, "treegrid");
        var _37 = _36.checkedRows;
        var _38 = _36.options;
        if (!row.checkState || _35 == undefined) {
            return;
        }
        var tr = _38.finder.getTr(_34, row[_38.idField]);
        var ck = tr.find(".tree-checkbox");
        if (!ck.length) {
            return;
        }
        row.checkState = ["unchecked", "checked", "indeterminate"][_35];
        row.checked = (row.checkState == "checked");
        ck.removeClass("tree-checkbox0 tree-checkbox1 tree-checkbox2");
        ck.addClass("tree-checkbox" + _35);
        if (_35 == 0) {
            $.easyui.removeArrayItem(_37, _38.idField, row[_38.idField]);
        } else {
            $.easyui.addArrayItem(_37, _38.idField, row);
        }
    };

    function _31(_39, row, _3a) {
        var _3b = _3a ? 1 : 0;
        _33(_39, row, _3b);
        $.easyui.forEach(row.children || [], true, function (r) {
            _33(_39, r, _3b);
        });
    };

    function _32(_3c, row) {
        var _3d = $.data(_3c, "treegrid").options;
        var _3e = _3f(_3c, row[_3d.idField]);
        if (_3e) {
            _33(_3c, _3e, _40(_3e));
            _32(_3c, _3e);
        }
    };

    function _40(row) {
        var len = 0;
        var c0 = 0;
        var c1 = 0;
        $.easyui.forEach(row.children || [], false, function (r) {
            if (r.checkState) {
                len++;
                if (r.checkState == "checked") {
                    c1++;
                } else {
                    if (r.checkState == "unchecked") {
                        c0++;
                    }
                }
            }
        });
        if (len == 0) {
            return undefined;
        }
        var _41 = 0;
        if (c0 == len) {
            _41 = 0;
        } else {
            if (c1 == len) {
                _41 = 1;
            } else {
                _41 = 2;
            }
        }
        return _41;
    };

    function _42(_43, _44) {
        var _45 = $.data(_43, "treegrid").options;
        if (!_45.checkbox) {
            return;
        }
        var row = _30(_43, _44);
        var tr = _45.finder.getTr(_43, _44);
        var ck = tr.find(".tree-checkbox");
        if (_45.view.hasCheckbox(_43, row)) {
            if (!ck.length) {
                row.checkState = row.checkState || "unchecked";
                $("<span class=\"tree-checkbox\"></span>").insertBefore(tr.find(".tree-title"));
            }
            if (row.checkState == "checked") {
                _27(_43, _44, true, true);
            } else {
                if (row.checkState == "unchecked") {
                    _27(_43, _44, false, true);
                } else {
                    var _46 = _40(row);
                    if (_46 === 0) {
                        _27(_43, _44, false, true);
                    } else {
                        if (_46 === 1) {
                            _27(_43, _44, true, true);
                        }
                    }
                }
            }
        } else {
            ck.remove();
            row.checkState = undefined;
            row.checked = undefined;
            _32(_43, row);
        }
    };

    function _47(_48, _49) {
        var _4a = $.data(_48, "treegrid").options;
        var tr1 = _4a.finder.getTr(_48, _49, "body", 1);
        var tr2 = _4a.finder.getTr(_48, _49, "body", 2);
        var _4b = $(_48).datagrid("getColumnFields", true).length + (_4a.rownumbers ? 1 : 0);
        var _4c = $(_48).datagrid("getColumnFields", false).length;
        _4d(tr1, _4b);
        _4d(tr2, _4c);

        function _4d(tr, _4e) {
            $("<tr class=\"treegrid-tr-tree\">" + "<td style=\"border:0px\" colspan=\"" + _4e + "\">" + "<div></div>" + "</td>" + "</tr>").insertAfter(tr);
        };
    };

    function _4f(_50, _51, _52, _53, _54) {
        var _55 = $.data(_50, "treegrid");
        var _56 = _55.options;
        var dc = _55.dc;
        _52 = _56.loadFilter.call(_50, _52, _51);
        var _57 = _30(_50, _51);
        if (_57) {
            var _58 = _56.finder.getTr(_50, _51, "body", 1);
            var _59 = _56.finder.getTr(_50, _51, "body", 2);
            var cc1 = _58.next("tr.treegrid-tr-tree").children("td").children("div");
            var cc2 = _59.next("tr.treegrid-tr-tree").children("td").children("div");
            if (!_53) {
                _57.children = [];
            }
        } else {
            var cc1 = dc.body1;
            var cc2 = dc.body2;
            if (!_53) {
                _55.data = [];
            }
        }
        if (!_53) {
            cc1.empty();
            cc2.empty();
        }
        if (_56.view.onBeforeRender) {
            _56.view.onBeforeRender.call(_56.view, _50, _51, _52);
        }
        _56.view.render.call(_56.view, _50, cc1, true);
        _56.view.render.call(_56.view, _50, cc2, false);
        if (_56.showFooter) {
            _56.view.renderFooter.call(_56.view, _50, dc.footer1, true);
            _56.view.renderFooter.call(_56.view, _50, dc.footer2, false);
        }
        if (_56.view.onAfterRender) {
            _56.view.onAfterRender.call(_56.view, _50);
        }
        if (!_51 && _56.pagination) {
            var _5a = $.data(_50, "treegrid").total;
            var _5b = $(_50).datagrid("getPager");
            if (_5b.pagination("options").total != _5a) {
                _5b.pagination({total: _5a});
            }
        }
        _16(_50);
        _1f(_50);
        $(_50).treegrid("showLines");
        $(_50).treegrid("setSelectionState");
        $(_50).treegrid("autoSizeColumn");
        if (!_54) {
            _56.onLoadSuccess.call(_50, _57, _52);
        }
    };

    function _15(_5c, _5d, _5e, _5f, _60) {
        var _61 = $.data(_5c, "treegrid").options;
        var _62 = $(_5c).datagrid("getPanel").find("div.datagrid-body");
        if (_5d == undefined && _61.queryParams) {
            _61.queryParams.id = undefined;
        }
        if (_5e) {
            _61.queryParams = _5e;
        }
        var _63 = $.extend({}, _61.queryParams);
        if (_61.pagination) {
            $.extend(_63, {page: _61.pageNumber, rows: _61.pageSize});
        }
        if (_61.sortName) {
            $.extend(_63, {sort: _61.sortName, order: _61.sortOrder});
        }
        var row = _30(_5c, _5d);
        if (_61.onBeforeLoad.call(_5c, row, _63) == false) {
            return;
        }
        var _64 = _62.find("tr[node-id=\"" + _5d + "\"] span.tree-folder");
        _64.addClass("tree-loading");
        $(_5c).treegrid("loading");
        var _65 = _61.loader.call(_5c, _63, function (_66) {
            _64.removeClass("tree-loading");
            $(_5c).treegrid("loaded");
            _4f(_5c, _5d, _66, _5f);
            if (_60) {
                _60();
            }
        }, function () {
            _64.removeClass("tree-loading");
            $(_5c).treegrid("loaded");
            _61.onLoadError.apply(_5c, arguments);
            if (_60) {
                _60();
            }
        });
        if (_65 == false) {
            _64.removeClass("tree-loading");
            $(_5c).treegrid("loaded");
        }
    };

    function _67(_68) {
        var _69 = _6a(_68);
        return _69.length ? _69[0] : null;
    };

    function _6a(_6b) {
        return $.data(_6b, "treegrid").data;
    };

    function _3f(_6c, _6d) {
        var row = _30(_6c, _6d);
        if (row._parentId) {
            return _30(_6c, row._parentId);
        } else {
            return null;
        }
    };

    function _1b(_6e, _6f) {
        var _70 = $.data(_6e, "treegrid").data;
        if (_6f) {
            var _71 = _30(_6e, _6f);
            _70 = _71 ? (_71.children || []) : [];
        }
        var _72 = [];
        $.easyui.forEach(_70, true, function (_73) {
            _72.push(_73);
        });
        return _72;
    };

    function _74(_75, _76) {
        var _77 = $.data(_75, "treegrid").options;
        var tr = _77.finder.getTr(_75, _76);
        var _78 = tr.children("td[field=\"" + _77.treeField + "\"]");
        return _78.find("span.tree-indent,span.tree-hit").length;
    };

    function _30(_79, _7a) {
        var _7b = $.data(_79, "treegrid");
        var _7c = _7b.options;
        var _7d = null;
        $.easyui.forEach(_7b.data, true, function (_7e) {
            if (_7e[_7c.idField] == _7a) {
                _7d = _7e;
                return false;
            }
        });
        return _7d;
    };

    function _7f(_80, _81) {
        var _82 = $.data(_80, "treegrid").options;
        var row = _30(_80, _81);
        var tr = _82.finder.getTr(_80, _81);
        var hit = tr.find("span.tree-hit");
        if (hit.length == 0) {
            return;
        }
        if (hit.hasClass("tree-collapsed")) {
            return;
        }
        if (_82.onBeforeCollapse.call(_80, row) == false) {
            return;
        }
        hit.removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed");
        hit.next().removeClass("tree-folder-open");
        row.state = "closed";
        tr = tr.next("tr.treegrid-tr-tree");
        var cc = tr.children("td").children("div");
        if (_82.animate) {
            cc.slideUp("normal", function () {
                $(_80).treegrid("autoSizeColumn");
                _16(_80, _81);
                _82.onCollapse.call(_80, row);
            });
        } else {
            cc.hide();
            $(_80).treegrid("autoSizeColumn");
            _16(_80, _81);
            _82.onCollapse.call(_80, row);
        }
    };

    function _83(_84, _85) {
        var _86 = $.data(_84, "treegrid").options;
        var tr = _86.finder.getTr(_84, _85);
        var hit = tr.find("span.tree-hit");
        var row = _30(_84, _85);
        if (hit.length == 0) {
            return;
        }
        if (hit.hasClass("tree-expanded")) {
            return;
        }
        if (_86.onBeforeExpand.call(_84, row) == false) {
            return;
        }
        hit.removeClass("tree-collapsed tree-collapsed-hover").addClass("tree-expanded");
        hit.next().addClass("tree-folder-open");
        var _87 = tr.next("tr.treegrid-tr-tree");
        if (_87.length) {
            var cc = _87.children("td").children("div");
            _88(cc);
        } else {
            _47(_84, row[_86.idField]);
            var _87 = tr.next("tr.treegrid-tr-tree");
            var cc = _87.children("td").children("div");
            cc.hide();
            var _89 = $.extend({}, _86.queryParams || {});
            _89.id = row[_86.idField];
            _15(_84, row[_86.idField], _89, true, function () {
                if (cc.is(":empty")) {
                    _87.remove();
                } else {
                    _88(cc);
                }
            });
        }

        function _88(cc) {
            row.state = "open";
            if (_86.animate) {
                cc.slideDown("normal", function () {
                    $(_84).treegrid("autoSizeColumn");
                    _16(_84, _85);
                    _86.onExpand.call(_84, row);
                });
            } else {
                cc.show();
                $(_84).treegrid("autoSizeColumn");
                _16(_84, _85);
                _86.onExpand.call(_84, row);
            }
        };
    };

    function _26(_8a, _8b) {
        var _8c = $.data(_8a, "treegrid").options;
        var tr = _8c.finder.getTr(_8a, _8b);
        var hit = tr.find("span.tree-hit");
        if (hit.hasClass("tree-expanded")) {
            _7f(_8a, _8b);
        } else {
            _83(_8a, _8b);
        }
    };

    function _8d(_8e, _8f) {
        var _90 = $.data(_8e, "treegrid").options;
        var _91 = _1b(_8e, _8f);
        if (_8f) {
            _91.unshift(_30(_8e, _8f));
        }
        for (var i = 0; i < _91.length; i++) {
            _7f(_8e, _91[i][_90.idField]);
        }
    };

    function _92(_93, _94) {
        var _95 = $.data(_93, "treegrid").options;
        var _96 = _1b(_93, _94);
        if (_94) {
            _96.unshift(_30(_93, _94));
        }
        for (var i = 0; i < _96.length; i++) {
            _83(_93, _96[i][_95.idField]);
        }
    };

    function _97(_98, _99) {
        var _9a = $.data(_98, "treegrid").options;
        var ids = [];
        var p = _3f(_98, _99);
        while (p) {
            var id = p[_9a.idField];
            ids.unshift(id);
            p = _3f(_98, id);
        }
        for (var i = 0; i < ids.length; i++) {
            _83(_98, ids[i]);
        }
    };

    function _9b(_9c, _9d) {
        var _9e = $.data(_9c, "treegrid");
        var _9f = _9e.options;
        if (_9d.parent) {
            var tr = _9f.finder.getTr(_9c, _9d.parent);
            if (tr.next("tr.treegrid-tr-tree").length == 0) {
                _47(_9c, _9d.parent);
            }
            var _a0 = tr.children("td[field=\"" + _9f.treeField + "\"]").children("div.datagrid-cell");
            var _a1 = _a0.children("span.tree-icon");
            if (_a1.hasClass("tree-file")) {
                _a1.removeClass("tree-file").addClass("tree-folder tree-folder-open");
                var hit = $("<span class=\"tree-hit tree-expanded\"></span>").insertBefore(_a1);
                if (hit.prev().length) {
                    hit.prev().remove();
                }
            }
        }
        _4f(_9c, _9d.parent, _9d.data, _9e.data.length > 0, true);
    };

    function _a2(_a3, _a4) {
        var ref = _a4.before || _a4.after;
        var _a5 = $.data(_a3, "treegrid").options;
        var _a6 = _3f(_a3, ref);
        _9b(_a3, {parent: (_a6 ? _a6[_a5.idField] : null), data: [_a4.data]});
        var _a7 = _a6 ? _a6.children : $(_a3).treegrid("getRoots");
        for (var i = 0; i < _a7.length; i++) {
            if (_a7[i][_a5.idField] == ref) {
                var _a8 = _a7[_a7.length - 1];
                _a7.splice(_a4.before ? i : (i + 1), 0, _a8);
                _a7.splice(_a7.length - 1, 1);
                break;
            }
        }
        _a9(true);
        _a9(false);
        _1f(_a3);
        $(_a3).treegrid("showLines");

        function _a9(_aa) {
            var _ab = _aa ? 1 : 2;
            var tr = _a5.finder.getTr(_a3, _a4.data[_a5.idField], "body", _ab);
            var _ac = tr.closest("table.datagrid-btable");
            tr = tr.parent().children();
            var _ad = _a5.finder.getTr(_a3, ref, "body", _ab);
            if (_a4.before) {
                tr.insertBefore(_ad);
            } else {
                var sub = _ad.next("tr.treegrid-tr-tree");
                tr.insertAfter(sub.length ? sub : _ad);
            }
            _ac.remove();
        };
    };

    function _ae(_af, _b0) {
        var _b1 = $.data(_af, "treegrid");
        var _b2 = _b1.options;
        var _b3 = _3f(_af, _b0);
        $(_af).datagrid("deleteRow", _b0);
        $.easyui.removeArrayItem(_b1.checkedRows, _b2.idField, _b0);
        _1f(_af);
        if (_b3) {
            _42(_af, _b3[_b2.idField]);
        }
        _b1.total -= 1;
        $(_af).datagrid("getPager").pagination("refresh", {total: _b1.total});
        $(_af).treegrid("showLines");
    };

    function _b4(_b5) {
        var t = $(_b5);
        var _b6 = t.treegrid("options");
        if (_b6.lines) {
            t.treegrid("getPanel").addClass("tree-lines");
        } else {
            t.treegrid("getPanel").removeClass("tree-lines");
            return;
        }
        t.treegrid("getPanel").find("span.tree-indent").removeClass("tree-line tree-join tree-joinbottom");
        t.treegrid("getPanel").find("div.datagrid-cell").removeClass("tree-node-last tree-root-first tree-root-one");
        var _b7 = t.treegrid("getRoots");
        if (_b7.length > 1) {
            _b8(_b7[0]).addClass("tree-root-first");
        } else {
            if (_b7.length == 1) {
                _b8(_b7[0]).addClass("tree-root-one");
            }
        }
        _b9(_b7);
        _ba(_b7);

        function _b9(_bb) {
            $.map(_bb, function (_bc) {
                if (_bc.children && _bc.children.length) {
                    _b9(_bc.children);
                } else {
                    var _bd = _b8(_bc);
                    _bd.find(".tree-icon").prev().addClass("tree-join");
                }
            });
            if (_bb.length) {
                var _be = _b8(_bb[_bb.length - 1]);
                _be.addClass("tree-node-last");
                _be.find(".tree-join").removeClass("tree-join").addClass("tree-joinbottom");
            }
        };

        function _ba(_bf) {
            $.map(_bf, function (_c0) {
                if (_c0.children && _c0.children.length) {
                    _ba(_c0.children);
                }
            });
            for (var i = 0; i < _bf.length - 1; i++) {
                var _c1 = _bf[i];
                var _c2 = t.treegrid("getLevel", _c1[_b6.idField]);
                var tr = _b6.finder.getTr(_b5, _c1[_b6.idField]);
                var cc = tr.next().find("tr.datagrid-row td[field=\"" + _b6.treeField + "\"] div.datagrid-cell");
                cc.find("span:eq(" + (_c2 - 1) + ")").addClass("tree-line");
            }
        };

        function _b8(_c3) {
            var tr = _b6.finder.getTr(_b5, _c3[_b6.idField]);
            var _c4 = tr.find("td[field=\"" + _b6.treeField + "\"] div.datagrid-cell");
            return _c4;
        };
    };
    $.fn.treegrid = function (_c5, _c6) {
        if (typeof _c5 == "string") {
            var _c7 = $.fn.treegrid.methods[_c5];
            if (_c7) {
                return _c7(this, _c6);
            } else {
                return this.datagrid(_c5, _c6);
            }
        }
        _c5 = _c5 || {};
        return this.each(function () {
            var _c8 = $.data(this, "treegrid");
            if (_c8) {
                $.extend(_c8.options, _c5);
            } else {
                _c8 = $.data(this, "treegrid", {
                    options: $.extend({}, $.fn.treegrid.defaults, $.fn.treegrid.parseOptions(this), _c5),
                    data: [],
                    checkedRows: [],
                    tmpIds: []
                });
            }
            _1(this);
            if (_c8.options.data) {
                $(this).treegrid("loadData", _c8.options.data);
            }
            _15(this);
        });
    };
    $.fn.treegrid.methods = {
        options: function (jq) {
            return $.data(jq[0], "treegrid").options;
        }, resize: function (jq, _c9) {
            return jq.each(function () {
                $(this).datagrid("resize", _c9);
            });
        }, fixRowHeight: function (jq, _ca) {
            return jq.each(function () {
                _16(this, _ca);
            });
        }, loadData: function (jq, _cb) {
            return jq.each(function () {
                _4f(this, _cb.parent, _cb);
            });
        }, load: function (jq, _cc) {
            return jq.each(function () {
                $(this).treegrid("options").pageNumber = 1;
                $(this).treegrid("getPager").pagination({pageNumber: 1});
                $(this).treegrid("reload", _cc);
            });
        }, reload: function (jq, id) {
            return jq.each(function () {
                var _cd = $(this).treegrid("options");
                var _ce = {};
                if (typeof id == "object") {
                    _ce = id;
                } else {
                    _ce = $.extend({}, _cd.queryParams);
                    _ce.id = id;
                }
                if (_ce.id) {
                    var _cf = $(this).treegrid("find", _ce.id);
                    if (_cf.children) {
                        _cf.children.splice(0, _cf.children.length);
                    }
                    _cd.queryParams = _ce;
                    var tr = _cd.finder.getTr(this, _ce.id);
                    tr.next("tr.treegrid-tr-tree").remove();
                    tr.find("span.tree-hit").removeClass("tree-expanded tree-expanded-hover").addClass("tree-collapsed");
                    _83(this, _ce.id);
                } else {
                    _15(this, null, _ce);
                }
            });
        }, reloadFooter: function (jq, _d0) {
            return jq.each(function () {
                var _d1 = $.data(this, "treegrid").options;
                var dc = $.data(this, "datagrid").dc;
                if (_d0) {
                    $.data(this, "treegrid").footer = _d0;
                }
                if (_d1.showFooter) {
                    _d1.view.renderFooter.call(_d1.view, this, dc.footer1, true);
                    _d1.view.renderFooter.call(_d1.view, this, dc.footer2, false);
                    if (_d1.view.onAfterRender) {
                        _d1.view.onAfterRender.call(_d1.view, this);
                    }
                    $(this).treegrid("fixRowHeight");
                }
            });
        }, getData: function (jq) {
            return $.data(jq[0], "treegrid").data;
        }, getFooterRows: function (jq) {
            return $.data(jq[0], "treegrid").footer;
        }, getRoot: function (jq) {
            return _67(jq[0]);
        }, getRoots: function (jq) {
            return _6a(jq[0]);
        }, getParent: function (jq, id) {
            return _3f(jq[0], id);
        }, getChildren: function (jq, id) {
            return _1b(jq[0], id);
        }, getLevel: function (jq, id) {
            return _74(jq[0], id);
        }, find: function (jq, id) {
            return _30(jq[0], id);
        }, isLeaf: function (jq, id) {
            var _d2 = $.data(jq[0], "treegrid").options;
            var tr = _d2.finder.getTr(jq[0], id);
            var hit = tr.find("span.tree-hit");
            return hit.length == 0;
        }, select: function (jq, id) {
            return jq.each(function () {
                $(this).datagrid("selectRow", id);
            });
        }, unselect: function (jq, id) {
            return jq.each(function () {
                $(this).datagrid("unselectRow", id);
            });
        }, collapse: function (jq, id) {
            return jq.each(function () {
                _7f(this, id);
            });
        }, expand: function (jq, id) {
            return jq.each(function () {
                _83(this, id);
            });
        }, toggle: function (jq, id) {
            return jq.each(function () {
                _26(this, id);
            });
        }, collapseAll: function (jq, id) {
            return jq.each(function () {
                _8d(this, id);
            });
        }, expandAll: function (jq, id) {
            return jq.each(function () {
                _92(this, id);
            });
        }, expandTo: function (jq, id) {
            return jq.each(function () {
                _97(this, id);
            });
        }, append: function (jq, _d3) {
            return jq.each(function () {
                _9b(this, _d3);
            });
        }, insert: function (jq, _d4) {
            return jq.each(function () {
                _a2(this, _d4);
            });
        }, remove: function (jq, id) {
            return jq.each(function () {
                _ae(this, id);
            });
        }, pop: function (jq, id) {
            var row = jq.treegrid("find", id);
            jq.treegrid("remove", id);
            return row;
        }, refresh: function (jq, id) {
            return jq.each(function () {
                var _d5 = $.data(this, "treegrid").options;
                _d5.view.refreshRow.call(_d5.view, this, id);
            });
        }, update: function (jq, _d6) {
            return jq.each(function () {
                var _d7 = $.data(this, "treegrid").options;
                var row = _d6.row;
                _d7.view.updateRow.call(_d7.view, this, _d6.id, row);
                if (row.checked != undefined) {
                    row = _30(this, _d6.id);
                    $.extend(row, {checkState: row.checked ? "checked" : (row.checked === false ? "unchecked" : undefined)});
                    _42(this, _d6.id);
                }
            });
        }, beginEdit: function (jq, id) {
            return jq.each(function () {
                $(this).datagrid("beginEdit", id);
                $(this).treegrid("fixRowHeight", id);
            });
        }, endEdit: function (jq, id) {
            return jq.each(function () {
                $(this).datagrid("endEdit", id);
            });
        }, cancelEdit: function (jq, id) {
            return jq.each(function () {
                $(this).datagrid("cancelEdit", id);
            });
        }, showLines: function (jq) {
            return jq.each(function () {
                _b4(this);
            });
        }, setSelectionState: function (jq) {
            return jq.each(function () {
                $(this).datagrid("setSelectionState");
                var _d8 = $(this).data("treegrid");
                for (var i = 0; i < _d8.tmpIds.length; i++) {
                    _27(this, _d8.tmpIds[i], true, true);
                }
                _d8.tmpIds = [];
            });
        }, getCheckedNodes: function (jq, _d9) {
            _d9 = _d9 || "checked";
            var _da = [];
            $.easyui.forEach(jq.data("treegrid").checkedRows, false, function (row) {
                if (row.checkState == _d9) {
                    _da.push(row);
                }
            });
            return _da;
        }, checkNode: function (jq, id) {
            return jq.each(function () {
                _27(this, id, true);
            });
        }, uncheckNode: function (jq, id) {
            return jq.each(function () {
                _27(this, id, false);
            });
        }, clearChecked: function (jq) {
            return jq.each(function () {
                var _db = this;
                var _dc = $(_db).treegrid("options");
                $(_db).datagrid("clearChecked");
                $.map($(_db).treegrid("getCheckedNodes"), function (row) {
                    _27(_db, row[_dc.idField], false, true);
                });
            });
        }
    };
    $.fn.treegrid.parseOptions = function (_dd) {
        return $.extend({}, $.fn.datagrid.parseOptions(_dd), $.parser.parseOptions(_dd, ["treeField", {
            checkbox: "boolean",
            cascadeCheck: "boolean",
            onlyLeafCheck: "boolean"
        }, {animate: "boolean"}]));
    };
    var _de = $.extend({}, $.fn.datagrid.defaults.view, {
        render: function (_df, _e0, _e1) {
            var _e2 = $.data(_df, "treegrid").options;
            var _e3 = $(_df).datagrid("getColumnFields", _e1);
            var _e4 = $.data(_df, "datagrid").rowIdPrefix;
            if (_e1) {
                if (!(_e2.rownumbers || (_e2.frozenColumns && _e2.frozenColumns.length))) {
                    return;
                }
            }
            var _e5 = this;
            if (this.treeNodes && this.treeNodes.length) {
                var _e6 = _e7.call(this, _e1, this.treeLevel, this.treeNodes);
                $(_e0).append(_e6.join(""));
            }

            function _e7(_e8, _e9, _ea) {
                var _eb = $(_df).treegrid("getParent", _ea[0][_e2.idField]);
                var _ec = (_eb ? _eb.children.length : $(_df).treegrid("getRoots").length) - _ea.length;
                var _ed = ["<table class=\"datagrid-btable\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody>"];
                for (var i = 0; i < _ea.length; i++) {
                    var row = _ea[i];
                    if (row.state != "open" && row.state != "closed") {
                        row.state = "open";
                    }
                    var css = _e2.rowStyler ? _e2.rowStyler.call(_df, row) : "";
                    var cs = this.getStyleValue(css);
                    var cls = "class=\"datagrid-row " + (_ec++ % 2 && _e2.striped ? "datagrid-row-alt " : " ") + cs.c + "\"";
                    var _ee = cs.s ? "style=\"" + cs.s + "\"" : "";
                    var _ef = _e4 + "-" + (_e8 ? 1 : 2) + "-" + row[_e2.idField];
                    _ed.push("<tr id=\"" + _ef + "\" node-id=\"" + row[_e2.idField] + "\" " + cls + " " + _ee + ">");
                    _ed = _ed.concat(_e5.renderRow.call(_e5, _df, _e3, _e8, _e9, row));
                    _ed.push("</tr>");
                    if (row.children && row.children.length) {
                        var tt = _e7.call(this, _e8, _e9 + 1, row.children);
                        var v = row.state == "closed" ? "none" : "block";
                        _ed.push("<tr class=\"treegrid-tr-tree\"><td style=\"border:0px\" colspan=" + (_e3.length + (_e2.rownumbers ? 1 : 0)) + "><div style=\"display:" + v + "\">");
                        _ed = _ed.concat(tt);
                        _ed.push("</div></td></tr>");
                    }
                }
                _ed.push("</tbody></table>");
                return _ed;
            };
        }, renderFooter: function (_f0, _f1, _f2) {
            var _f3 = $.data(_f0, "treegrid").options;
            var _f4 = $.data(_f0, "treegrid").footer || [];
            var _f5 = $(_f0).datagrid("getColumnFields", _f2);
            var _f6 = ["<table class=\"datagrid-ftable\" cellspacing=\"0\" cellpadding=\"0\" border=\"0\"><tbody>"];
            for (var i = 0; i < _f4.length; i++) {
                var row = _f4[i];
                row[_f3.idField] = row[_f3.idField] || ("foot-row-id" + i);
                _f6.push("<tr class=\"datagrid-row\" node-id=\"" + row[_f3.idField] + "\">");
                _f6.push(this.renderRow.call(this, _f0, _f5, _f2, 0, row));
                _f6.push("</tr>");
            }
            _f6.push("</tbody></table>");
            $(_f1).html(_f6.join(""));
        }, renderRow: function (_f7, _f8, _f9, _fa, row) {
            var _fb = $.data(_f7, "treegrid");
            var _fc = _fb.options;
            var cc = [];
            if (_f9 && _fc.rownumbers) {
                cc.push("<td class=\"datagrid-td-rownumber\"><div class=\"datagrid-cell-rownumber\">0</div></td>");
            }
            for (var i = 0; i < _f8.length; i++) {
                var _fd = _f8[i];
                var col = $(_f7).datagrid("getColumnOption", _fd);
                if (col) {
                    var css = col.styler ? (col.styler(row[_fd], row) || "") : "";
                    var cs = this.getStyleValue(css);
                    var cls = cs.c ? "class=\"" + cs.c + "\"" : "";
                    var _fe = col.hidden ? "style=\"display:none;" + cs.s + "\"" : (cs.s ? "style=\"" + cs.s + "\"" : "");
                    cc.push("<td field=\"" + _fd + "\" " + cls + " " + _fe + ">");
                    var _fe = "";
                    if (!col.checkbox) {
                        if (col.align) {
                            _fe += "text-align:" + col.align + ";";
                        }
                        if (!_fc.nowrap) {
                            _fe += "white-space:normal;height:auto;";
                        } else {
                            if (_fc.autoRowHeight) {
                                _fe += "height:auto;";
                            }
                        }
                    }
                    cc.push("<div style=\"" + _fe + "\" ");
                    if (col.checkbox) {
                        cc.push("class=\"datagrid-cell-check ");
                    } else {
                        cc.push("class=\"datagrid-cell " + col.cellClass);
                    }
                    cc.push("\">");
                    if (col.checkbox) {
                        if (row.checked) {
                            cc.push("<input type=\"checkbox\" checked=\"checked\"");
                        } else {
                            cc.push("<input type=\"checkbox\"");
                        }
                        cc.push(" name=\"" + _fd + "\" value=\"" + (row[_fd] != undefined ? row[_fd] : "") + "\">");
                    } else {
                        var val = null;
                        if (col.formatter) {
                            val = col.formatter(row[_fd], row);
                        } else {
                            val = row[_fd];
                        }
                        if (_fd == _fc.treeField) {
                            for (var j = 0; j < _fa; j++) {
                                cc.push("<span class=\"tree-indent\"></span>");
                            }
                            if (row.state == "closed") {
                                cc.push("<span class=\"tree-hit tree-collapsed\"></span>");
                                cc.push("<span class=\"tree-icon tree-folder " + (row.iconCls ? row.iconCls : "") + "\"></span>");
                            } else {
                                if (row.children && row.children.length) {
                                    cc.push("<span class=\"tree-hit tree-expanded\"></span>");
                                    cc.push("<span class=\"tree-icon tree-folder tree-folder-open " + (row.iconCls ? row.iconCls : "") + "\"></span>");
                                } else {
                                    cc.push("<span class=\"tree-indent\"></span>");
                                    cc.push("<span class=\"tree-icon tree-file " + (row.iconCls ? row.iconCls : "") + "\"></span>");
                                }
                            }
                            if (this.hasCheckbox(_f7, row)) {
                                var _ff = 0;
                                var crow = $.easyui.getArrayItem(_fb.checkedRows, _fc.idField, row[_fc.idField]);
                                if (crow) {
                                    _ff = crow.checkState == "checked" ? 1 : 2;
                                } else {
                                    var prow = $.easyui.getArrayItem(_fb.checkedRows, _fc.idField, row._parentId);
                                    if (prow && prow.checkState == "checked" && _fc.cascadeCheck) {
                                        _ff = 1;
                                        row.checked = true;
                                        $.easyui.addArrayItem(_fb.checkedRows, _fc.idField, row);
                                    } else {
                                        if (row.checked) {
                                            $.easyui.addArrayItem(_fb.tmpIds, row[_fc.idField]);
                                        }
                                    }
                                    row.checkState = _ff ? "checked" : "unchecked";
                                }
                                cc.push("<span class=\"tree-checkbox tree-checkbox" + _ff + "\"></span>");
                            } else {
                                row.checkState = undefined;
                                row.checked = undefined;
                            }
                            cc.push("<span class=\"tree-title\">" + val + "</span>");
                        } else {
                            cc.push(val);
                        }
                    }
                    cc.push("</div>");
                    cc.push("</td>");
                }
            }
            return cc.join("");
        }, hasCheckbox: function (_100, row) {
            var opts = $.data(_100, "treegrid").options;
            if (opts.checkbox) {
                if ($.isFunction(opts.checkbox)) {
                    if (opts.checkbox.call(_100, row)) {
                        return true;
                    } else {
                        return false;
                    }
                } else {
                    if (opts.onlyLeafCheck) {
                        if (row.state == "open" && !(row.children && row.children.length)) {
                            return true;
                        }
                    } else {
                        return true;
                    }
                }
            }
            return false;
        }, refreshRow: function (_101, id) {
            this.updateRow.call(this, _101, id, {});
        }, updateRow: function (_102, id, row) {
            var opts = $.data(_102, "treegrid").options;
            var _103 = $(_102).treegrid("find", id);
            $.extend(_103, row);
            var _104 = $(_102).treegrid("getLevel", id) - 1;
            var _105 = opts.rowStyler ? opts.rowStyler.call(_102, _103) : "";
            var _106 = $.data(_102, "datagrid").rowIdPrefix;
            var _107 = _103[opts.idField];

            function _108(_109) {
                var _10a = $(_102).treegrid("getColumnFields", _109);
                var tr = opts.finder.getTr(_102, id, "body", (_109 ? 1 : 2));
                var _10b = tr.find("div.datagrid-cell-rownumber").html();
                var _10c = tr.find("div.datagrid-cell-check input[type=checkbox]").is(":checked");
                tr.html(this.renderRow(_102, _10a, _109, _104, _103));
                tr.attr("style", _105 || "");
                tr.find("div.datagrid-cell-rownumber").html(_10b);
                if (_10c) {
                    tr.find("div.datagrid-cell-check input[type=checkbox]")._propAttr("checked", true);
                }
                if (_107 != id) {
                    tr.attr("id", _106 + "-" + (_109 ? 1 : 2) + "-" + _107);
                    tr.attr("node-id", _107);
                }
            };
            _108.call(this, true);
            _108.call(this, false);
            $(_102).treegrid("fixRowHeight", id);
        }, deleteRow: function (_10d, id) {
            var opts = $.data(_10d, "treegrid").options;
            var tr = opts.finder.getTr(_10d, id);
            tr.next("tr.treegrid-tr-tree").remove();
            tr.remove();
            var _10e = del(id);
            if (_10e) {
                if (_10e.children.length == 0) {
                    tr = opts.finder.getTr(_10d, _10e[opts.idField]);
                    tr.next("tr.treegrid-tr-tree").remove();
                    var cell = tr.children("td[field=\"" + opts.treeField + "\"]").children("div.datagrid-cell");
                    cell.find(".tree-icon").removeClass("tree-folder").addClass("tree-file");
                    cell.find(".tree-hit").remove();
                    $("<span class=\"tree-indent\"></span>").prependTo(cell);
                }
            }
            this.setEmptyMsg(_10d);

            function del(id) {
                var cc;
                var _10f = $(_10d).treegrid("getParent", id);
                if (_10f) {
                    cc = _10f.children;
                } else {
                    cc = $(_10d).treegrid("getData");
                }
                for (var i = 0; i < cc.length; i++) {
                    if (cc[i][opts.idField] == id) {
                        cc.splice(i, 1);
                        break;
                    }
                }
                return _10f;
            };
        }, onBeforeRender: function (_110, _111, data) {
            if ($.isArray(_111)) {
                data = {total: _111.length, rows: _111};
                _111 = null;
            }
            if (!data) {
                return false;
            }
            var _112 = $.data(_110, "treegrid");
            var opts = _112.options;
            if (data.length == undefined) {
                if (data.footer) {
                    _112.footer = data.footer;
                }
                if (data.total) {
                    _112.total = data.total;
                }
                data = this.transfer(_110, _111, data.rows);
            } else {
                function _113(_114, _115) {
                    for (var i = 0; i < _114.length; i++) {
                        var row = _114[i];
                        row._parentId = _115;
                        if (row.children && row.children.length) {
                            _113(row.children, row[opts.idField]);
                        }
                    }
                };
                _113(data, _111);
            }
            var node = _30(_110, _111);
            if (node) {
                if (node.children) {
                    node.children = node.children.concat(data);
                } else {
                    node.children = data;
                }
            } else {
                _112.data = _112.data.concat(data);
            }
            this.sort(_110, data);
            this.treeNodes = data;
            this.treeLevel = $(_110).treegrid("getLevel", _111);
        }, sort: function (_116, data) {
            var opts = $.data(_116, "treegrid").options;
            if (!opts.remoteSort && opts.sortName) {
                var _117 = opts.sortName.split(",");
                var _118 = opts.sortOrder.split(",");
                _119(data);
            }

            function _119(rows) {
                rows.sort(function (r1, r2) {
                    var r = 0;
                    for (var i = 0; i < _117.length; i++) {
                        var sn = _117[i];
                        var so = _118[i];
                        var col = $(_116).treegrid("getColumnOption", sn);
                        var _11a = col.sorter || function (a, b) {
                            return a == b ? 0 : (a > b ? 1 : -1);
                        };
                        r = _11a(r1[sn], r2[sn]) * (so == "asc" ? 1 : -1);
                        if (r != 0) {
                            return r;
                        }
                    }
                    return r;
                });
                for (var i = 0; i < rows.length; i++) {
                    var _11b = rows[i].children;
                    if (_11b && _11b.length) {
                        _119(_11b);
                    }
                }
            };
        }, transfer: function (_11c, _11d, data) {
            var opts = $.data(_11c, "treegrid").options;
            var rows = $.extend([], data);
            var _11e = _11f(_11d, rows);
            var toDo = $.extend([], _11e);
            while (toDo.length) {
                var node = toDo.shift();
                var _120 = _11f(node[opts.idField], rows);
                if (_120.length) {
                    if (node.children) {
                        node.children = node.children.concat(_120);
                    } else {
                        node.children = _120;
                    }
                    toDo = toDo.concat(_120);
                }
            }
            return _11e;

            function _11f(_121, rows) {
                var rr = [];
                for (var i = 0; i < rows.length; i++) {
                    var row = rows[i];
                    if (row._parentId == _121) {
                        rr.push(row);
                        rows.splice(i, 1);
                        i--;
                    }
                }
                return rr;
            };
        }
    });
    $.fn.treegrid.defaults = $.extend({}, $.fn.datagrid.defaults, {
        treeField: null,
        checkbox: false,
        cascadeCheck: true,
        onlyLeafCheck: false,
        lines: false,
        animate: false,
        singleSelect: true,
        view: _de,
        rowEvents: $.extend({}, $.fn.datagrid.defaults.rowEvents, {
            mouseover: _22(true),
            mouseout: _22(false),
            click: _24
        }),
        loader: function (_122, _123, _124) {
            var opts = $(this).treegrid("options");
            if (!opts.url) {
                return false;
            }
            $.ajax({
                type: opts.method, url: opts.url, data: _122, dataType: "json", success: function (data) {
                    _123(data);
                }, error: function () {
                    _124.apply(this, arguments);
                }
            });
        },
        loadFilter: function (data, _125) {
            return data;
        },
        finder: {
            getTr: function (_126, id, type, _127) {
                type = type || "body";
                _127 = _127 || 0;
                var dc = $.data(_126, "datagrid").dc;
                if (_127 == 0) {
                    var opts = $.data(_126, "treegrid").options;
                    var tr1 = opts.finder.getTr(_126, id, type, 1);
                    var tr2 = opts.finder.getTr(_126, id, type, 2);
                    return tr1.add(tr2);
                } else {
                    if (type == "body") {
                        var tr = $("#" + $.data(_126, "datagrid").rowIdPrefix + "-" + _127 + "-" + id);
                        if (!tr.length) {
                            tr = (_127 == 1 ? dc.body1 : dc.body2).find("tr[node-id=\"" + id + "\"]");
                        }
                        return tr;
                    } else {
                        if (type == "footer") {
                            return (_127 == 1 ? dc.footer1 : dc.footer2).find("tr[node-id=\"" + id + "\"]");
                        } else {
                            if (type == "selected") {
                                return (_127 == 1 ? dc.body1 : dc.body2).find("tr.datagrid-row-selected");
                            } else {
                                if (type == "highlight") {
                                    return (_127 == 1 ? dc.body1 : dc.body2).find("tr.datagrid-row-over");
                                } else {
                                    if (type == "checked") {
                                        return (_127 == 1 ? dc.body1 : dc.body2).find("tr.datagrid-row-checked");
                                    } else {
                                        if (type == "last") {
                                            return (_127 == 1 ? dc.body1 : dc.body2).find("tr:last[node-id]");
                                        } else {
                                            if (type == "allbody") {
                                                return (_127 == 1 ? dc.body1 : dc.body2).find("tr[node-id]");
                                            } else {
                                                if (type == "allfooter") {
                                                    return (_127 == 1 ? dc.footer1 : dc.footer2).find("tr[node-id]");
                                                }
                                            }
                                        }
                                    }
                                }
                            }
                        }
                    }
                }
            }, getRow: function (_128, p) {
                var id = (typeof p == "object") ? p.attr("node-id") : p;
                return $(_128).treegrid("find", id);
            }, getRows: function (_129) {
                return $(_129).treegrid("getChildren");
            }
        },
        onBeforeLoad: function (row, _12a) {
        },
        onLoadSuccess: function (row, data) {
        },
        onLoadError: function () {
        },
        onBeforeCollapse: function (row) {
        },
        onCollapse: function (row) {
        },
        onBeforeExpand: function (row) {
        },
        onExpand: function (row) {
        },
        onClickRow: function (row) {
        },
        onDblClickRow: function (row) {
        },
        onClickCell: function (_12b, row) {
        },
        onDblClickCell: function (_12c, row) {
        },
        onContextMenu: function (e, row) {
        },
        onBeforeEdit: function (row) {
        },
        onAfterEdit: function (row, _12d) {
        },
        onCancelEdit: function (row) {
        },
        onBeforeCheckNode: function (row, _12e) {
        },
        onCheckNode: function (row, _12f) {
        }
    });
})(jQuery);

